home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / HyperXCmd.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  12.5 KB  |  298 lines  |  [TEXT/MPS ]

  1. (*
  2.     File:        HyperXCmd.mod
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. *)
  11.  
  12. (*$TAGS-*)
  13. (*$CALLING PASCAL*)
  14. MODULE HyperXCmd;
  15.  
  16. IMPORT SYSTEM, Types, Quickdraw, Events, TextEdit, Menus, StandardFile;
  17.  
  18. CONST
  19.   (* result codes *)
  20.   xresSucc* = 0;
  21.   xresFail* = 1;
  22.   xresNotImp* = 2;
  23.  
  24.   (* XCMDBlock constants for event.what... *)
  25.   xOpenEvt*              = 1000;         (* the first event after you are created *)
  26.   xCloseEvt*             = 1001;         (* your window is being forced close (Quit?) *)
  27.   xGiveUpEditEvt*        = 1002;         (* you are losing Edit... *)
  28.   xGiveUpSoundEvt*    = 1003;        (* someone else is requesting HyperCard's sound channel *)
  29.   xHidePalettesEvt*    = 1004;        (* someone called HideHCPalettes *)
  30.   xShowPalettesEvt*    = 1005;        (* someone called ShowHCPalettes *)
  31.   xEditUndo*        = 1100;        (* Edit——Undo *)
  32.   xEditCut*        = 1102;        (* Edit——Cut *)
  33.   xEditCopy*        = 1103;        (* Edit——Copy *)
  34.   xEditPaste*        = 1104;        (* Edit——Paste *)
  35.   xEditClear*        = 1105;        (* Edit——Clear *)
  36.   xSendEvt*        = 1200;        (* script has sent you a message (text) *)
  37.   xSetPropEvt*        = 1201;        (* set a window property *)
  38.   xGetPropEvt*        = 1202;        (* get a window property *)
  39.   xCursorWithin*        = 1300;        (* cursor is within the window *)
  40.   xMenuEvt*        = 1400;        (* user has selected an item in your menu *)
  41.   xMBarClickedEvt*    = 1401;        (* a menu is about to be shown--update if needed *)
  42.  
  43.   xShowWatchInfoEvt*    = 1501;        (* for variable and message watchers *)
  44.   xScriptErrorEvt*    = 1502;        (* place the insertion point *)
  45.   xDebugErrorEvt*    = 1503;        (* user clicked "Debug" at a complaint *)
  46.   xDebugStepEvt*        = 1504;        (* hilite the line *)
  47.   xDebugTraceEvt*    = 1505;        (* same as step but tracing *)
  48.   xDebugFinishedEvt*    = 1506;        (* script ended *)
  49.  
  50.   paletteProc*        = 2048;        (* Windoid with grow box *)
  51.   palNoGrowProc*        = 2052;        (* standard Windoid defproc *) 
  52.   palZoomProc*        = 2056;        (* Windoid with zoom and grow *)
  53.   palZoomNoGrow*        = 2060;        (* Windoid with zoom and no grow *)
  54.   hasZoom*        =    8;
  55.   hasTallTBar*        =    2;
  56.   toggleHilite*        =    1;
  57.   
  58.   maxCachedChecks*    = 16;        (* maximum number of checkpoints in a script *)
  59.  
  60.   (* paramCount is set to these constants when first calling special XThings *)
  61.   xMessageWatcherID*    = -2;
  62.   xVariableWatcherID*    = -3;
  63.   xScriptEditorID*    = -4;
  64.   xDebuggerID*        = -5;
  65.  
  66.   (* XTalkObjectPtrPOINTER TO .objectKind values *)
  67.   stackObj*    = 1;
  68.   bkgndObj*    = 2;
  69.   cardObj*    = 3;
  70.   fieldObj*    = 4;
  71.   buttonObj*    = 5;
  72.  
  73.   (* selectors for ShowHCAlert's dialogs (shown as buttonID*:buttonText) *)
  74.   errorDlgID*        = 1;    (* 1:OK (default) *)
  75.   confirmDlgID*        = 2;    (* 1:OK (default) and 2:Cancel *)
  76.   confirmDelDlgID*    = 3;    (* 1:Cancel (default) and 2:Delete *)
  77.   yesNoCancelDlgID*    = 4;    (* 1:Yes (default), 2:Cancel, and 3:No *)
  78.  
  79.  
  80. TYPE
  81.   XCmdPtr*   = POINTER TO XCmdBlock;
  82.   XCmdBlock* = RECORD
  83.         paramCount*:    INTEGER; (* If* = -1 then new use for XWindoids *)
  84.         params*:        ARRAY 16 (*ΔΔ[1..16]ΔΔ*) OF Types.Handle;
  85.         returnValue*:     Types.Handle; 
  86.         passFlag*:    BOOLEAN;
  87.         
  88.         entryPoint*:    Types.ProcPtr; (* to call back to HyperCard *)
  89.         request*:    INTEGER;
  90.         result*:        INTEGER;
  91.         inArgs*:        ARRAY 8 (*ΔΔ[1..8]ΔΔ*) OF LONGINT;
  92.         outArgs*:    ARRAY 4 (*ΔΔ[1..4]ΔΔ*) OF LONGINT;
  93.           END;
  94.  
  95.   XWEventInfoPtr* = POINTER TO XWEventInfo;
  96.   XWEventInfo*     = RECORD
  97.              event*:      Events.EventRecord;
  98.              eventWindow*: Quickdraw.WindowPtr;
  99.              eventParams*: ARRAY 9 (*ΔΔ[1..9]ΔΔ*) OF LONGINT;
  100.              eventResult*: Types.Handle;
  101.            END;
  102.           
  103.   XTalkObjectPtr* = POINTER TO XTalkObject;
  104.   XTalkObject* = RECORD
  105.           objectKind*:   INTEGER;    (* stack, bkgnd, card, field, or button *)
  106.           stackNum*:    LONGINT;    (* reference number of the source stack *)
  107.           bkgndID*:    LONGINT;
  108.           cardID*:    LONGINT;
  109.           buttonID*:    LONGINT;
  110.           fieldID*:    LONGINT;
  111.         END;
  112.  
  113.   CheckPtHandle* = HANDLE TO CheckPts (*ΔΔ POINTER TO CheckPtPtr*);
  114.   CheckPtPtr*    = POINTER TO CheckPts;
  115.   CheckPts*    = RECORD
  116.                     checks*: ARRAY (*ΔΔ[1..*)maxCachedChecks(*ΔΔ ]ΔΔ*) OF INTEGER;
  117.           END;
  118.  
  119.  
  120. (****  HyperTalk Utilities  ****)
  121. PROCEDURE  EvalExpr*(paramPtr: XCmdPtr; expr: Types.Str255): Types.Handle;
  122.     EXTERNAL PASCAL;
  123. PROCEDURE SendCardMessage*(paramPtr: XCmdPtr; msg: Types.Str255);
  124.     EXTERNAL PASCAL;
  125. PROCEDURE SendHCMessage*(paramPtr: XCmdPtr; msg: Types.Str255);
  126.     EXTERNAL PASCAL;
  127. PROCEDURE RunHandler*(paramPtr: XCmdPtr; handler: Types.Handle);
  128.     EXTERNAL PASCAL;
  129.  
  130. (****  Memory Utilities  ****)
  131. PROCEDURE  GetGlobal*(paramPtr: XCmdPtr; globName: Types.Str255): Types.Handle;
  132.     EXTERNAL PASCAL;
  133. PROCEDURE SetGlobal*(paramPtr: XCmdPtr; globName: Types.Str255; globValue: Types.Handle);
  134.     EXTERNAL PASCAL;
  135. PROCEDURE ZeroBytes*(paramPtr: XCmdPtr; dstPtr: Types.Ptr;longCount: LONGINT);
  136.     EXTERNAL PASCAL;
  137.  
  138. (****  String Utilities  ****)
  139. PROCEDURE ScanToReturn*(paramPtr: XCmdPtr; VAR scanPtr: Types.Ptr);
  140.     EXTERNAL PASCAL;
  141. PROCEDURE ScanToZero*(paramPtr: XCmdPtr; VAR scanPtr: Types.Ptr);
  142.     EXTERNAL PASCAL;
  143. PROCEDURE  StringEqual*(paramPtr: XCmdPtr; str1,str2: Types.Str255): BOOLEAN;
  144.     EXTERNAL PASCAL;
  145. PROCEDURE  StringLength*(paramPtr: XCmdPtr; strPtr: Types.Ptr): LONGINT;
  146.     EXTERNAL PASCAL;
  147. PROCEDURE  StringMatch*(paramPtr: XCmdPtr; pattern: Types.Str255; target: Types.Ptr): Types.Ptr;
  148.     EXTERNAL PASCAL;
  149. PROCEDURE ZeroTermHandle*(paramPtr: XCmdPtr; hndl: Types.Handle);    
  150.     EXTERNAL PASCAL;
  151.  
  152. (****  String Conversions  ****)
  153. PROCEDURE BoolToStr*(paramPtr: XCmdPtr; bool: BOOLEAN; VAR str: Types.Str255);
  154.     EXTERNAL PASCAL;
  155. (*•• PROCEDURE ExtToStr*(paramPtr: XCmdPtr; num: Types.Extended80; VAR str: Types.Str255);
  156.     EXTERNAL PASCAL;*)
  157. PROCEDURE LongToStr*(paramPtr: XCmdPtr; posNum: LONGINT; VAR str: Types.Str255);
  158.     EXTERNAL PASCAL;
  159. PROCEDURE NumToHex*(paramPtr: XCmdPtr; num: LONGINT; nDigits: INTEGER; VAR str: Types.Str255);
  160.     EXTERNAL PASCAL;
  161. PROCEDURE NumToStr*(paramPtr: XCmdPtr; num: LONGINT; VAR str: Types.Str255);
  162.     EXTERNAL PASCAL;
  163. PROCEDURE  PasToZero*(paramPtr: XCmdPtr; str: Types.Str255): Types.Handle;
  164.     EXTERNAL PASCAL;
  165. PROCEDURE PointToStr*(paramPtr: XCmdPtr; pt: Types.Point; VAR str: Types.Str255);
  166.     EXTERNAL PASCAL;
  167. PROCEDURE RectToStr*(paramPtr: XCmdPtr; rct: Types.Rect; VAR str: Types.Str255);
  168.     EXTERNAL PASCAL;
  169. PROCEDURE ReturnToPas*(paramPtr: XCmdPtr; zeroStr: Types.Ptr; VAR pasStr: Types.Str255);
  170.     EXTERNAL PASCAL;
  171. PROCEDURE  StrToBool*(paramPtr: XCmdPtr; str: Types.Str255): BOOLEAN;
  172.     EXTERNAL PASCAL;
  173. (*•• PROCEDURE  StrToExt*(paramPtr: XCmdPtr; str: Types.Str255): Types.Extended80;
  174.     EXTERNAL PASCAL;*)
  175. PROCEDURE  StrToLong*(paramPtr: XCmdPtr; str: Types.Str255): LONGINT;
  176.     EXTERNAL PASCAL;
  177. PROCEDURE  StrToNum*(paramPtr: XCmdPtr; str: Types.Str255): LONGINT;
  178.     EXTERNAL PASCAL;
  179. PROCEDURE StrToPoint*(paramPtr: XCmdPtr; str: Types.Str255; VAR pt: Types.Point);
  180.     EXTERNAL PASCAL;
  181. PROCEDURE StrToRect*(paramPtr: XCmdPtr; str: Types.Str255; VAR rct: Types.Rect);
  182.     EXTERNAL PASCAL;
  183. PROCEDURE ZeroToPas*(paramPtr: XCmdPtr; zeroStr: Types.Ptr; VAR pasStr: Types.Str255);
  184.     EXTERNAL PASCAL;
  185.  
  186. (****  Field Utilities  ****)
  187. PROCEDURE  GetFieldByID*(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Types.Handle;
  188.     EXTERNAL PASCAL;
  189. PROCEDURE  GetFieldByName*(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Types.Str255): Types.Handle;
  190.     EXTERNAL PASCAL;
  191. PROCEDURE  GetFieldByNum*(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Types.Handle;
  192.     EXTERNAL PASCAL;
  193. PROCEDURE SetFieldByID*(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Types.Handle);
  194.     EXTERNAL PASCAL;
  195. PROCEDURE SetFieldByName*(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Types.Str255; fieldVal: Types.Handle);
  196.     EXTERNAL PASCAL;
  197. PROCEDURE SetFieldByNum*(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Types.Handle);
  198.     EXTERNAL PASCAL;
  199. PROCEDURE  GetFieldTE*(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER; fieldNamePtr: Types.StringPtr): TextEdit.TEHandle;
  200.     EXTERNAL PASCAL;
  201. PROCEDURE SetFieldTE*(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER; fieldNamePtr: Types.StringPtr; fieldTE: TextEdit.TEHandle);
  202.     EXTERNAL PASCAL;
  203.  
  204. (****  Miscellaneous Utilities  ****)
  205. PROCEDURE BeginXSound*(paramPtr: XCmdPtr; window: Quickdraw.WindowPtr);            
  206.     EXTERNAL PASCAL;
  207. PROCEDURE EndXSound*(paramPtr: XCmdPtr);                
  208.     EXTERNAL PASCAL;
  209. PROCEDURE  GetFilePath*(paramPtr: XCmdPtr; fileName: Types.Str255; numTypes: INTEGER; typeList: StandardFile.SFTypeList; askUser: BOOLEAN; VAR fileType: Types.OSType; VAR fullName: Types.Str255): BOOLEAN;
  210.     EXTERNAL PASCAL;
  211. PROCEDURE GetXResInfo*(paramPtr: XCmdPtr; VAR resFile: INTEGER; VAR resID: INTEGER; VAR rType: Types.ResType; VAR name: Types.Str255);
  212.     EXTERNAL PASCAL;
  213. PROCEDURE Notify*(paramPtr: XCmdPtr);
  214.     EXTERNAL PASCAL;
  215. PROCEDURE SendHCEvent*(paramPtr: XCmdPtr; event: Events.EventRecord);    
  216.     EXTERNAL PASCAL;
  217. PROCEDURE SendWindowMessage*(paramPtr: XCmdPtr; windPtr: Quickdraw.WindowPtr; windowName: Types.Str255; msg: Types.Str255);
  218.     EXTERNAL PASCAL;
  219. PROCEDURE FrontDocWindow*(paramPtr: XCmdPtr): Quickdraw.WindowPtr;
  220.     EXTERNAL PASCAL;
  221. PROCEDURE StackNameToNum*(paramPtr: XCmdPtr; stackName: Types.Str255): LONGINT;
  222.     EXTERNAL PASCAL;
  223. PROCEDURE ShowHCAlert*(paramPtr: XCmdPtr; dlgID: INTEGER; promptStr: Types.Str255): INTEGER;
  224.     EXTERNAL PASCAL;
  225.  
  226. (****  Creating and Disposing XWindoids  ****)
  227. PROCEDURE NewXWindow*(paramPtr: XCmdPtr; boundsRect: Types.Rect; title: Types.Str255; visible: BOOLEAN; procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): Quickdraw.WindowPtr;        
  228.     EXTERNAL PASCAL;
  229. PROCEDURE GetNewXWindow*(paramPtr: XCmdPtr; templateType: Types.ResType; templateID: INTEGER; color: BOOLEAN; floating: BOOLEAN): Quickdraw.WindowPtr;        
  230.     EXTERNAL PASCAL;
  231. PROCEDURE CloseXWindow*(paramPtr: XCmdPtr; window: Quickdraw.WindowPtr);    
  232.     EXTERNAL PASCAL;
  233.  
  234. (****  XWindoid Utilities  ****)
  235. PROCEDURE HideHCPalettes*(paramPtr: XCmdPtr);
  236.     EXTERNAL PASCAL;
  237. PROCEDURE ShowHCPalettes*(paramPtr: XCmdPtr);
  238.     EXTERNAL PASCAL;
  239. PROCEDURE RegisterXWMenu*(paramPtr: XCmdPtr; window: Quickdraw.WindowPtr; menu: Menus.MenuHandle; registering: BOOLEAN);
  240.     EXTERNAL PASCAL;
  241. PROCEDURE SetXWIdleTime*(paramPtr: XCmdPtr; window: Quickdraw.WindowPtr; interval: LONGINT);
  242.     EXTERNAL PASCAL;
  243. PROCEDURE XWHasInterruptCode*(paramPtr: XCmdPtr; window: Quickdraw.WindowPtr; haveCode: BOOLEAN);
  244.     EXTERNAL PASCAL;
  245. PROCEDURE XWAlwaysMoveHigh*(paramPtr: XCmdPtr; window: Quickdraw.WindowPtr; moveHigh: BOOLEAN);
  246.     EXTERNAL PASCAL;
  247. PROCEDURE XWAllowReEntrancy*(paramPtr: XCmdPtr; window: Quickdraw.WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  248.     EXTERNAL PASCAL;
  249.  
  250. (****  Text Editing Utilities  ****)
  251. PROCEDURE BeginXWEdit*(paramPtr: XCmdPtr; window: Quickdraw.WindowPtr);            
  252.     EXTERNAL PASCAL;
  253. PROCEDURE EndXWEdit*(paramPtr: XCmdPtr; window: Quickdraw.WindowPtr);                
  254.     EXTERNAL PASCAL;
  255. PROCEDURE  HCWordBreakProc*(paramPtr: XCmdPtr): Types.ProcPtr;        
  256.     EXTERNAL PASCAL;
  257. PROCEDURE PrintTEHandle*(paramPtr: XCmdPtr; hTE: TextEdit.TEHandle; header: Types.StringPtr);
  258.     EXTERNAL PASCAL;
  259.  
  260. (****  Script Editor support  ****)
  261. PROCEDURE  GetCheckPoints*(paramPtr: XCmdPtr): CheckPtHandle;    
  262.     EXTERNAL PASCAL;
  263. PROCEDURE SetCheckPoints*(paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  264.     EXTERNAL PASCAL;
  265. PROCEDURE FormatScript*(paramPtr: XCmdPtr; scriptHndl: Types.Handle; VAR insertionPoint: LONGINT; quickFormat: BOOLEAN);
  266.     EXTERNAL PASCAL;
  267. PROCEDURE SaveXWScript*(paramPtr: XCmdPtr; scriptHndl: Types.Handle);    
  268.     EXTERNAL PASCAL;
  269. PROCEDURE GetObjectName*(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR objName: Types.Str255);
  270.     EXTERNAL PASCAL;
  271. PROCEDURE GetObjectScript*(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR scriptHndl: Types.Handle);
  272.     EXTERNAL PASCAL;
  273. PROCEDURE SetObjectScript*(paramPtr: XCmdPtr; object: XTalkObjectPtr; scriptHndl: Types.Handle);
  274.     EXTERNAL PASCAL;
  275.  
  276. (****  Debugging Tools support  ****)
  277. PROCEDURE AbortScript*(paramPtr: XCmdPtr);
  278.     EXTERNAL PASCAL;
  279. PROCEDURE GoScript*(paramPtr: XCmdPtr);
  280.     EXTERNAL PASCAL;
  281. PROCEDURE StepScript*(paramPtr: XCmdPtr; stepInto: BOOLEAN);
  282.     EXTERNAL PASCAL;
  283. PROCEDURE CountHandlers*(paramPtr: XCmdPtr; VAR handlerCount: INTEGER);
  284.     EXTERNAL PASCAL;
  285. PROCEDURE GetHandlerInfo*(paramPtr: XCmdPtr; handlerNum: INTEGER; VAR handlerName: Types.Str255; VAR objectName: Types.Str255; VAR varCount: INTEGER);
  286.     EXTERNAL PASCAL;
  287. PROCEDURE GetVarInfo*(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; VAR varName: Types.Str255; VAR isGlobal: BOOLEAN; VAR varValue: Types.Str255; varHndl: Types.Handle);
  288.     EXTERNAL PASCAL;
  289. PROCEDURE SetVarValue*(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; varHndl: Types.Handle);
  290.     EXTERNAL PASCAL;
  291. PROCEDURE  GetStackCrawl*(paramPtr: XCmdPtr): Types.Handle;
  292.     EXTERNAL PASCAL;
  293. PROCEDURE TraceScript*(paramPtr: XCmdPtr; traceInto: BOOLEAN);
  294.     EXTERNAL PASCAL;
  295.  
  296.  
  297.     END HyperXCmd.
  298.